home *** CD-ROM | disk | FTP | other *** search
- '------------------------------------------------------------------------------------------------
- '
- '
- ' Usage: chaccess <--ADSPath|-a relative config store path>
- ' [--computer|-c COMPUTER1[,COMPUTER2...]]
- ' [+read|-read]
- ' [+write|-write]
- ' [+script|-script]
- ' [+execute|-execute]
- ' [+browse|-browse]
- ' [--verbose|-v]
- ' [--help|-?]
- '
- ' ADSPATH The ADSI Path of the virtual root in question
- '
- ' Example 1: chaccess -a w3svc/1/ROOT +read -write +script +browse
- '------------------------------------------------------------------------------------------------
-
-
- ' Force explicit declaration of all variables
- Option Explicit
-
- On Error Resume Next
-
- Const Error_NoNode = "Unable to open specified node."
-
- Dim oArgs, ArgNum, verbose, propNum, ArgPath
- Dim ArgComputers
- Dim prop(15,2)
-
- verbose = false
- propNum = 0
- ArgNum = 0
- ArgPath = ""
- ArgComputers = Array("LocalHost")
-
- Set oArgs = WScript.Arguments
- While ArgNum < oArgs.Count
- Select Case LCase(oArgs(ArgNum))
- Case "--adspath", "-a":
- ArgNum = ArgNum + 1
- ArgPath = oArgs(ArgNum)
- Case "--computer","-c":
- ArgNum = ArgNum + 1
- ArgComputers = Split(oArgs(ArgNum), ",", -1)
- Case "--verbose", "-v":
- verbose = true
- Case "-read":
- prop(propNum,0) = "AccessRead"
- prop(propNum,1) = false
- propNum = propNum + 1
- Case "+read":
- prop(propNum,0) = "AccessRead"
- prop(propNum,1) = true
- propNum = propNum + 1
- Case "-write":
- prop(propNum, 0) = "AccessWrite"
- prop(propNum, 1) = false
- propNum = propNum + 1
- Case "+write":
- prop(propNum, 0) = "AccessWrite"
- prop(propNum, 1) = true
- propNum = propNum + 1
- Case "-script":
- prop(propNum, 0) = "AccessScript"
- prop(propNum, 1) = false
- propNum = propNum + 1
- Case "+script":
- prop(propNum, 0) = "AccessScript"
- prop(propNum, 1) = true
- propNum = propNum + 1
- Case "-execute":
- prop(propNum, 0) = "AccessExecute"
- prop(propNum, 1) = false
- propNum = propNum + 1
- Case "+execute":
- prop(propNum, 0) = "AccessExecute"
- prop(propNum, 1) = true
- propNum = propNum + 1
- Case "-browse":
- prop(propNum, 0) = "EnableDirBrowsing"
- prop(propNum, 1) = false
- propNum = propNum + 1
- Case "+browse":
- prop(propNum, 0) = "EnableDirBrowsing"
- prop(propNum, 1) = true
- propNum = propNum + 1
- Case "--help","-?":
- Call DisplayUsage
- Case Else:
- Call DisplayUsage
- End Select
- ArgNum = ArgNum + 1
- Wend
-
- If (ArgPath="") Then
- Call DisplayUsage
- End If
-
-
- Dim compIndex
- for compIndex = 0 to UBound(ArgComputers)
- Call ASTSetPerms(ArgComputers(compIndex), ArgPath, prop, propNum)
- next
-
- Sub ASTSetPerms(Computer, Path, propList, propCount)
- On Error Resume Next
- Dim oAdmin
- Dim fullPath
- fullPath = "IIS://"&Computer&"/"&Path
- Trace "Opening path " & fullPath
- Set oAdmin = GetObject(fullPath)
- If Err.Number <> 0 Then
- Display Error_NoNode
- WScript.Quit (1)
- End If
-
- Dim name, val
- if propCount > 0 then
- Dim i
-
- for i = 0 to propCount-1
- name = propList(i,0)
- val = propList(i,1)
- if verbose = true then
- Trace "Setting "&fullPath&"/"&name&" = "& val
- end if
- oAdmin.Put name, (val)
- If Err <> 0 Then
- Display "Unable to set property "&name
- End If
- next
- oAdmin.SetInfo
- If Err <> 0 Then
- Display "Unable to save updated information."
- End If
- end if
- End Sub
-
- Sub Display(Msg)
- WScript.Echo Now & ". Error Code: " & Hex(Err) & " - " & Msg
- End Sub
-
- Sub Trace(Msg)
- if verbose = true then
- WScript.Echo Now & " : " & Msg
- end if
- End Sub
-
- Sub DisplayUsage
- WScript.Echo "Usage: chaccess <--ADSPath|-a ADSPATH>"
- WScript.Echo " [--computer|-c COMPUTER1[,COMPUTER2...]]"
- WScript.Echo " [+read|-read]"
- WScript.Echo " [+write|-write]"
- WScript.Echo " [+script|-script]"
- WScript.Echo " [+execute|-execute]"
- WScript.Echo " [+browse|-browse]"
- WScript.Echo " [--verbose|-v]"
- WScript.Echo " [--help|-?]"
- WScript.Echo "Example 1: chaccess -a w3svc/1/ROOT +read -write +script +browse"
- WScript.Echo "Example 2: chaccess -c MACHINE1,MACHINE2,MACHINE3 -a w3svc/1/ROOT +read -write +script +browse"
- WScript.Quit (1)
- End Sub
-